Business Process Management (BPM) is a computer-based automation of an organization's business processes. It is composed of a sequence of activities (work tasks), interactions with human resources (users), or IT resources (software applications and databases), as well as rules controlling the progression of processes through the various stages associated with each activity.
At the various stages of the process, activities may require human interactions, typically user data entry through a form. They may also interact with IT applications or data sources to exchange information in various formats, such as files, e-mails, database content, etc.
One of the ways to automate processes is to develop or purchase an application that executes the required steps of the process; however, in practice, these applications rarely execute all the steps of the process accurately or completely. Another approach is to use a combination of software and human intervention; however this approach is more complex, making the documentation process difficult.
As a response to these problems, software has been developed that enables the full business process (as developed in the process design activity) to be defined in a computer format. A BPM process engine typically stores the state of a business process (for example, waiting for an input of a user, waiting for a status of a related process, etc. . . . ) in a database of a disk-based storage device. Such database requires that the state of the business process be formatted in a specific way in order to conform with the database requirements. As such, BPM process engine needs to be specifically configured to be able to communicate with the database. Therefore, raw data from the state of a business process needs to be processed into the proper specific database format. Such configuration requires precious limited computing resources.